import request from '/@/utils/request';

export function deployment(obj?: Object) {
	return request({
		url: '/flow/flow/deployment',
		method: 'post',
		data: obj,
	});
}

/**
 * 获取流程图json
 * @param flowKey
 * @param data
 */
export function getFlowJson(flowKey: Object, data: Object) {
	return request({
		url: '/flow/flow/getFlowJson/' + flowKey,
		method: 'get',
		params: data,
	});
}

/**
 * 获取流程所有版本号
 * @param flowKey
 */
export function getFlowVersion(flowKey: Object) {
	return request({
		url: '/flow/flow/getFlowVersion/' + flowKey,
		method: 'get',
	});
}

export function updateFlowVersion(key: string, version: Object) {
	return request({
		url: '/flow/flow/updateFlowVersion/' + key + '/' + version,
		method: 'put',
	});
}

/**
 * 获取流程图json
 * @param processInstanceId
 */
export function getFlowJsonByProcessInstanceId(processInstanceId: Object) {
	return request({
		url: '/flow/flow/getFlowJsonByProcessInstanceId/' + processInstanceId,
		method: 'get',
	});
}

/**
 * 获取审批记录
 * @param processInstanceId
 */
export function getHistoryNode(processInstanceId: Object) {
	return request({
		url: '/flow/flow/getHistoryNode/' + processInstanceId,
		method: 'get',
	});
}

/**
 * 根据分页查询参数获取列表数据。
 * @param {Object} [query] - 查询参数。
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function fetchMyStartList(query?: Object) {
	return request({
		url: '/flow/flow/myStartPage',
		method: 'get',
		params: query,
	});
}

/**
 * 根据分页查询参数获取列表数据。
 * @param {Object} [query] - 查询参数。
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function fetchMyApprovalList(query?: Object) {
	return request({
		url: '/flow/flow/myApprovalPage',
		method: 'get',
		params: query,
	});
}

/**
 * 根据分页查询参数获取列表数据。
 * @param {Object} [query] - 查询参数。
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function fetchMyDonePageList(query?: Object) {
	return request({
		url: '/flow/flow/myDonePage',
		method: 'get',
		params: query,
	});
}

/**
 * 审批任务
 * @param {Object} [obj] -
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function completeTask(obj: Object) {
	return request({
		url: '/flow/flow/completeTask',
		method: 'post',
		data: obj,
	});
}

/**
 * 根据分页查询参数获取列表数据。
 * @param {Object} [taskId] - 查询参数。
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function getTaskPermission(taskId?: Object) {
	return request({
		url: '/flow/flow/getTaskPermission/' + taskId,
		method: 'get',
	});
}

/**
 * 审批任务
 * @param {Object} [obj] -
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function terminationProcess(obj: Object) {
	return request({
		url: '/flow/flow/terminationProcess',
		method: 'post',
		data: obj,
	});
}